package cn.tedu.javagame.star;

import javax.swing.*;
import java.awt.*;
import java.util.Timer;
import java.util.TimerTask;

//面板类型，相当于窗口上的玻璃、画布
public class StarPanel extends JPanel {
    //属性
    Star star = new Star();
    Star[] stars = new Star[500];
//    Moon moon;
//    Color bkColor = Color.blue;
    Color bkColor = new Color(18, 180, 250);
    //构造
    public StarPanel() {
        this.setBackground(bkColor);
        for (int i = 0; i < stars.length; i++) {
            stars[i] = new Star();
        }
    }
    //行为
    //此方法是父类提供的，代表画画，在此处进行重写
    public void paint(Graphics g) {
        super.paint(g);//调用父类的paint
//        g.drawLine(34,67,990,10);
//        g.drawRect(100,100,300,300);
//        g.fillRect(100,100,150,150);
        g.setColor(Color.yellow);
        g.fillOval(100,100,150,150);
        //设置画笔大小
        Font font = new Font("宋体", Font.BOLD, 25);
        g.setFont(font);
        //画星星
        g.setColor(star.color);
        g.drawString(star.label,star.x,star.y);
        for (int i = 0; i < stars.length; i++) {
            g.setColor(stars[i].color);
            g.drawString(stars[i].label,stars[i].x,stars[i].y);
        }
    }
    //自定义一个方法，表示游戏启动
    public void action(){
        Timer timer = new Timer();
        /**启动定时器
         * 1、匿名内部类，实现接口TimerTask
         * 2、整数,首次执行时间
         * 3、整数,执行间隔
         */
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                star.move();
                for (int i = 0; i < stars.length; i++) {
                    stars[i].move();
                }
                repaint();
            }
        }, 20, 10);
    }
}
